/**
 * Class: MooStepForm
 * 
 * Copyright (c) 2009, Marco Neumann
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are permitted
 * provided that the following conditions are met:
 * 
 * - Redistributions of source code must retain the above copyright notice, this list of conditions
 *   and the following disclaimer.
 * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions
 *   and the following disclaimer in the documentation and/or other materials provided with the distribution.
 * - Neither the name of the BalanceSocial nor the names of its contributors may be used to endorse or promote
 *   products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
 * OF SUCH DAMAGE.
 *
 * @copyright Copyright 2009, Marco Neumann
 * @version 0.1
 * @lastmodified 2009-01-29
 * @author Marco Neumann
 */
var MooStepForm = new Class({
	Implements: Options,
	options: {
		strBack: '<<< Anterior',
		strNext: 'Siguiente >>>',
		blockEl: 'fieldset',
		className: 'stepMe'
	},
	initialize: function(options)
	{
		this.setOptions(options);
		
		$$('form.'+this.options.className).each(function (formEl) {
			var blockElements = formEl.getElements(this.options.blockEl);
			this.totalEl = blockElements.length;
			
			blockElements.each(function (blockEl, index){
				if (index > 0)
				{
					$(blockEl).setStyle('display', 'none');
					new Element('a', {
						'class': 'backStep',
						'href': '#x_'+(index-1),
						'html': this.options.strBack,
						'events': {
							'click': function (e) {
								new Event(e).stop();
								$('#x_'+(index-1)).setStyle('display', 'block');
								$(blockEl).setStyle('display', 'none');
							}
						}
					}).inject(blockEl, 'bottom');
				}
				
				if ((index+1)< this.totalEl)
				{
					new Element('a', {
						'class': 'nextStep',
						'href': '#x_'+(index+1),
						'html': this.options.strNext,
						'events': {
							'click': function (e) {
								new Event(e).stop();
								$('#x_'+(index+1)).setStyle('display', 'block');
								$(blockEl).setStyle('display', 'none');
							}
						}
					}).inject(blockEl, 'bottom');
				}
				blockEl.set('id', '#x_'+index);
			}.bind(this));
		}.bind(this));	
	}
});
